package gdi1.electricbox.controller;

import gdi1.electricbox.gui.event.EventForUI;
import de.tu_darmstadt.gdi1.framework.controller.AbstractController;
import de.tu_darmstadt.gdi1.framework.controller.AbstractController.GameTimer;
import de.tu_darmstadt.gdi1.framework.interfaces.IControllerEvent;


/**
 * The interface of the {@link Controller} towards the {@link IGame}.
 * 
 * @author jonas
 *
 */
public interface IController {
	
	//insert here everything other classes need to know from the controller
	// like e.g. the Game..

	/**
	 * the controller should delegate this event to the current valid (graphical) user interface.
	 * @param event
	 * 		the event to send
	 */
	void sendEventToUi(EventForUI event);

	/**
	 * @see AbstractController#addTimer(IControllerEvent, boolean, boolean, long) 
	 */
	GameTimer addTimer(final IControllerEvent event, final boolean priority, final boolean repeating, final long interval);

}
